package com.moliku.insurance.model.entity.ChongQing;

import com.moliku.insurance.model.entity.ChongQing.Applicant;
import com.moliku.insurance.model.entity.ChongQing.Insured;
import com.moliku.insurance.model.entity.ChongQing.InsuredPlan;
import com.moliku.insurance.model.entity.ChongQing.Linker;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName 赵项阳
 * @Description: TODO
 * @Author DELL
 * @Date 2021/2/27
 * @Version V1.0
 * 重庆人保
 **/
public class PolicyInfo {
   // TODO 缺少PolicyNo 保单号


    /**
     * 请求序列号:1，2，3……，标识每个投保单的序号，如XML含多个<PolicyInfo>节点，则SerialNo值应唯一  必传
    */
    private String SerialNo;

    /**
     * 险种代码:由PICC提供具体代码 例：JAB 家庭财产综合保险; LCM：航空旅游组合保险  必传
    */
    private String RiskCode;

    /**
     * 售出保险时间:必须与录入时间的日期一致。精确到时分秒 格式：yyyy-MM-dd HH:mm:ss 必传
     * 注：具体传值以实际投单日期为准
    */
    private String OperateTimes;

    /**
     * 起保日期:格式: yyyy-MM-dd 必传
     * 注：具体传值以实际起保日期为准
    */
    private String StartDate;

    /**
     * 终保日期:格式: yyyy-MM-dd 必传
     * 注：具体传值以实际终保日期为准
    */
    private String EndDate;


    /**
     *起保小时:一般情况固定为0 必传
    */
    private String StartHour;


    /**
     *终保小时:一般情况固定为24 必传
    */
    private String EndHour;


    /**
     * 保单总保险金额:等于每人每份保额*投保人数*投保份数，如无投保份数节点，则默认为一份  必传
    */
    private BigDecimal SumAmount;


    /**
     * 保单总保险费:等于每人每份保费*投保人数*投保份数，如无投保份数节点，则默认为一份 必传
    */
    private BigDecimal SumPremium;

    /**
     * 争议解决方式:由PICC提供具体代码 必传
     * 1代表诉讼,2代表仲裁 此节点固定值为"1"
    */
    private String ArguSolution;


    /**
     * 仲裁机构名称:争议解决方式值为2时需提供此节点的值
    */
    private String ArbitBoardName;


    /**
     * 支付方式:0:单到付款Q:网上支付(接口保单默认为0) 非必传
    */
    private String PayMode;

    private Applicant applicant;

    private List<Insured> insured;

    private InsuredPlan insuredPlan;

    private Linker linker;

    private String TravelToAdress;


    /**
     *     旅行目的/驾驶人员类别/学校类型
     *     EAJ
     *     01：旅游
     *     03：探亲访友
     *     99：其它
     *     EAG_V
     *     02:商务
     *     04:公务
     *     99:其他
     *     EDD（驾乘意外险）驾驶人员类（必要节点）
     *     065：家庭自用车/非运营车
     *     066：运营车
     *     067：营运货车/拖拉机、摩托车等五小车辆
     *     ECD（学生幼儿意外伤害险）学校类型（必要节点）
     *     43：大学
     *     94：小学
     *     99：其他
     *     A1：中等专业学校
     *     A2：高中
     *     A3：初中
     *     A4：幼儿园
    */
    private String BusinessDetail;

    /**
     * 投保份数
    */
    private String Quantity;

    public String getQuantity() {
        return Quantity;
    }

    public void setQuantity(String quantity) {
        Quantity = quantity;
    }

    public String getBusinessDetail() {
        return BusinessDetail;
    }

    public void setBusinessDetail(String businessDetail) {
        BusinessDetail = businessDetail;
    }

    public String getTravelToAdress() {
        return TravelToAdress;
    }

    public void setTravelToAdress(String travelToAdress) {
        TravelToAdress = travelToAdress;
    }

    @XmlElement(name="Applicant")
    public Applicant getApplicant() {
        return applicant;
    }

    public void setApplicant(Applicant applicant) {
        this.applicant = applicant;
    }


    /**
     * 指定用<friends>标签包围，子标签为<friend>
    */
    @XmlElementWrapper(name="Insureds")
    @XmlElement(name="Insured")
    public List<Insured> getInsured() {
        return insured;
    }

    public void setInsured(List<Insured> insured) {
        this.insured = insured;
    }

    @XmlElement(name="InsuredPlan")
    public InsuredPlan getInsuredPlan() {
        return insuredPlan;
    }

    public void setInsuredPlan(InsuredPlan insuredPlan) {
        this.insuredPlan = insuredPlan;
    }

    @XmlElement(name="Linker")
    public Linker getLinker() {
        return linker;
    }

    public void setLinker(Linker linker) {
        this.linker = linker;
    }



    public String getRiskCode() {
        return RiskCode;
    }

    public void setRiskCode(String riskCode) {
        RiskCode = riskCode;
    }

    public String getOperateTimes() {
        return OperateTimes;
    }

    public void setOperateTimes(String operateTimes) {
        OperateTimes = operateTimes;
    }

    public String getArguSolution() {
        return ArguSolution;
    }

    public void setArguSolution(String arguSolution) {
        ArguSolution = arguSolution;
    }

    public String getArbitBoardName() {
        return ArbitBoardName;
    }

    public void setArbitBoardName(String arbitBoardName) {
        ArbitBoardName = arbitBoardName;
    }

    public String getPayMode() {
        return PayMode;
    }

    public void setPayMode(String payMode) {
        PayMode = payMode;
    }
    @XmlElement(name = "SerialNo")
    public String getSerialNo() {
        return SerialNo;
    }

    public void setSerialNo(String serialNo) {
        SerialNo = serialNo;
    }

    public String getStartDate() {
        return StartDate;
    }

    public void setStartDate(String startDate) {
        StartDate = startDate;
    }

    public String getEndDate() {
        return EndDate;
    }

    public void setEndDate(String endDate) {
        EndDate = endDate;
    }

    public String getStartHour() {
        return StartHour;
    }

    public void setStartHour(String startHour) {
        StartHour = startHour;
    }

    public String getEndHour() {
        return EndHour;
    }

    public void setEndHour(String endHour) {
        EndHour = endHour;
    }

    public BigDecimal getSumPremium() {
        return SumPremium;
    }

    public void setSumAmount(BigDecimal sumAmount) {
        SumAmount = sumAmount;
    }

    public BigDecimal getSumAmount() {
        return SumAmount;
    }

    public void setSumPremium(BigDecimal sumPremium) {
        SumPremium = sumPremium;
    }
}
